In some data processing applications, it is desirable to reorganize stored data elements. For example, digital signal processing applications can reorganize data elements to more efficiently perform matrix manipulations, while communications applications can perform interleaving or de-interleaving of data elements. Some data processing devices implement one or more of these applications by employing dedicated hardware to perform data reorganization.